package math;

public interface AEVisitor<R> {

  public abstract R visitAdd(Add add);

  public abstract R visitVariable(Variable var);

  public abstract R visitMult(Mult mult);

  public abstract R visitExp(Exp exp);

  public abstract R visitLn(Ln ln);

  public abstract R visitPow(Pow pow);

  public abstract R visitCos(Cos cos);

  public abstract R visitSin(Sin sin);

  public abstract R visitIntegerConstant(IntegerConstant value);
  
  public abstract R visitPI(PI pi);

  public abstract R visitNegation(Negation negation);

  public abstract R visitLogicalArithmeticVariable(LogicalArithmeticVariable logicalVariable);

  public abstract R visitNumericalLogicalVariable(NumericLogicalVariable numericLogicalVariable);

  public abstract R visitEvaluation(Evaluation evaluation);
}
